package com.one.group.service;

import com.one.group.model.dto.WorkAssignmentAddDto;
import com.one.group.model.dto.WorkAssignmentQueryDto;
import com.one.group.model.dto.WorkAssignmentReceiptDto;
import com.one.group.model.dto.WorkAssignmentUpdateDto;
import com.one.group.model.entity.WorkAssignment;
import com.one.group.model.vo.WorkAssignmentListVo;

import java.util.List;

/**
 * @author 
 * @date 
 * @description 派工管理服务接口
 */
public interface WorkAssignmentService {

    /**
     * 查询派工列表
     * @param workAssignmentQueryDto 查询参数
     * @return 派工列表
     */
    List<WorkAssignmentListVo> findWorkAssignmentByQueryDto(WorkAssignmentQueryDto workAssignmentQueryDto);

    /**
     * 添加派工信息
     * @param workAssignmentAddDto 添加参数
     * @return 是否成功
     */
    boolean insertWorkAssignment(WorkAssignmentAddDto workAssignmentAddDto);

    /**
     * 更新派工信息
     * @param workAssignmentUpdateDto 更新参数
     * @return 是否成功
     */
    boolean updateWorkAssignment(WorkAssignmentUpdateDto workAssignmentUpdateDto);

    /**
     * 删除派工信息
     * @param id 派工ID
     * @return 是否成功
     */
    boolean deleteWorkAssignment(Long id);

    /**
     * 根据ID查询派工信息
     * @param id 派工ID
     * @return 派工信息
     */
    WorkAssignment findById(Long id);
    
    /**
     * 派工回单
     * @param receiptDto 回单参数
     * @return 是否成功
     */
    boolean submitReceipt(WorkAssignmentReceiptDto receiptDto);
    
    /**
     * 将派工单状态更新为已完成
     * @param id 派工单ID
     * @return 是否成功
     */
    boolean updateToCompleted(Long id);
}